package com.wee.cronos.client.gin;

 import com.google.web.bindery.event.shared.EventBus;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.inject.Provider;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.wee.cronos.client.core.presenter.FolderExplorerPresenter;
import com.wee.cronos.client.core.presenter.ProjectExplorerPresenter;
import com.wee.cronos.client.core.presenter.ProjectManagementPresenter;
import com.wee.cronos.client.core.presenter.WorkspacePresenter;
import com.wee.cronos.client.resources.Resource;

@GinModules({ CronosModule.class })
public interface CronosGinjector extends Ginjector
{
	PlaceManager getPlaceManager();
	EventBus getEventBus();
	Resource getResource();
	
	Provider<WorkspacePresenter> getWorkspacePresenter();
	AsyncProvider<ProjectManagementPresenter> getProjectManagementPresenter();
	AsyncProvider<FolderExplorerPresenter> getFolderExplorerPresenter();
	AsyncProvider<ProjectExplorerPresenter> getProjectExplorerPresenter();
}
